package com.lingqi;

import com.lingqi.util.DBUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

// 没有事务，被动失败（重启服务器）
public class Demo2 {
    public static void main(String[] args) throws SQLException {
        String sql1 = "insert into records (rid, bid) values (1, 2)";
        String sql2 = "update books set count = count - 1 where bid = 2";

        try(Connection c = DBUtil.connection()){

            try(PreparedStatement ps = c.prepareStatement(sql1)){
                ps.executeUpdate();
            }

            // 执行完第一条 SQL 之后，要让第二条 SQL 执行失败

            try(PreparedStatement ps = c.prepareStatement(sql2)){
                ps.executeUpdate();
            }

            // 由于我们关闭了自动提交，所以，所修改的还没有真正的落盘
            c.commit();    // 只有加上这句，事务才被真正的提交了
        }
    }
}
